博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring-文件上传
阅读量:5772 次
发布时间:2019-06-18

本文共 2949 字,大约阅读时间需要 9 分钟。

springmvc实现简单文件上传和下载

思路:1:maven导入common-fileupload包 

   2:springmvc.xml导入文件多分布解析器

   3:使用MultipartFile获取上传的文件名和转换此文件为服务器上面的指定目录下文件(上传的jsp必须为multipart/form-data,不然multipartfile获取的值为null)

   4:下载: 使用FileCopyUtils.copyToByteArray(file)将目标文件转换为二进制数组,设置响应头和下载的文件名称,构建ResponseEntity对象返回到浏览器

1

<dependency>

<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>

2

<bean id="multipartResolver"

class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="1048576"></property>
</bean>

jsp代码

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>              My JSP 'index.jsp' starting page    
文件
下载

servlet代码

package com.crazy.goods.tools.fileupload;import java.io.File;import java.io.IOException;import java.net.URLEncoder;import javax.servlet.http.HttpServletResponse;import org.springframework.http.HttpHeaders;import org.springframework.http.HttpStatus;import org.springframework.http.ResponseEntity;import org.springframework.stereotype.Controller;import org.springframework.util.FileCopyUtils;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.multipart.MultipartFile;/** * @author Administrator * 创建时间:2017年7月6日上午8:46:53 */@Controllerpublic class UploadServlet {    public String filePath="c:";    @RequestMapping(value="/upload")    public String upload(MultipartFile aa,HttpServletResponse response) throws IllegalStateException, IOException {        String originalFilename = aa.getOriginalFilename();//获取到的是文件的名字        String name = aa.getName(); //或者的是aa的值        String destFile = filePath+"/"+originalFilename;        aa.transferTo(new File(destFile)); //将文件转换为路径下面的文件        response.getWriter().println("upload sucess");        return null;            }    @RequestMapping(value="/upload1")    public  String  uploadpage() {        return "upload";    }    @RequestMapping(value="download")    public ResponseEntity
down(String fileName) throws IOException{ //需要下载的目标文件 File file=new File(filePath+"/"+fileName); //读取目标文件为二进制数组 byte[] fileByte=FileCopyUtils.copyToByteArray(file); //设置响应头 HttpHeaders hh=new HttpHeaders(); //设置下载的文件的名称 hh.setContentDispositionFormData("attachment", URLEncoder.encode(fileName, "UTF-8")); //构建ResponseEntity对象 ResponseEntity
re=new ResponseEntity
(fileByte, hh, HttpStatus.CREATED); return re; }}

 

转载于:https://www.cnblogs.com/wdx330616/p/7128213.html

你可能感兴趣的文章
java工程师linux命令,这篇文章就够了
查看>>
关于React生命周期的学习
查看>>
webpack雪碧图生成
查看>>
搭建智能合约开发环境Remix IDE及使用
查看>>
Spring Cloud构建微服务架构—服务消费基础
查看>>
RAC实践采坑指北
查看>>
runtime运行时 isa指针 SEL方法选择器 IMP函数指针 Method方法 runtime消息机制 runtime的使用...
查看>>
LeetCode36.有效的数独 JavaScript
查看>>
Scrapy基本用法
查看>>
PAT A1030 动态规划
查看>>
自制一个 elasticsearch-spring-boot-starter
查看>>
软件开发学习的5大技巧,你知道吗?
查看>>
【人物志】美团前端通道主席洪磊:一位产品出身、爱焊电路板的工程师
查看>>
一份关于数据科学家应该具备的技能清单
查看>>
机器学习实战_一个完整的程序(一)
查看>>
Web框架的常用架构模式(JavaScript语言)
查看>>
如何用UPA优化性能?先读懂这份报告!
查看>>
这些Java面试题必须会-----鲁迅
查看>>
Linux 常用命令
查看>>
NodeJS 工程师必备的 8 个工具
查看>>